package com.web.onirigi.util;

import java.net.URLDecoder;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

/**
 * 将json 转换成Map
 * @author ASUS
 * 创建时间  2017年10月2日 下午5:25:11
 *
 */
public class ParseJsonToMap {
	
	private static final Logger logger=LoggerFactory.getLogger(ParseJsonToMap.class);

	/**
	 * 将j'son字符串转为msp数据结构
	 * @author ASUS
	 * 创建时间  2017年10月2日 下午5:28:44
	 * @param json
	 * @return
	 */
	public static Map<String, String> parseJsonToMap(JSONObject  json){
		Map<String,String> map = json.parseObject(json.toJSONString(), Map.class);
		map=json.parseObject(JSON.toJSONString(map.get("paramJson")),Map.class);
		return map;
		
	}
	
	/**
	 * 将string 内容转换为Map 示例
	 * @param json
	 * @return
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public static Map<String, String> parseStringToMap(String  json) throws Exception{
		json =URLDecoder.decode(json,"UTF-8");
		json=json.replaceFirst("=", ":");
		json="{"+json+"}";
	
		Map<String,String> map = JSON.parseObject(json, Map.class);
		
		map=JSON.parseObject(JSON.toJSONString(map.get("paramJson")),Map.class);
		return map;
		
	}
	
	/**
	 * 将string 内容转换为Map 对象，并且把type 传过去
	 * @param json
	 * @param type
	 * @return
	 * @throws Exception
	 */
	public static Map<String, String> parseStringToMap(String  json,String[] type) throws Exception{
		json =URLDecoder.decode(json,"UTF-8");
		json=json.replaceFirst("=", ":");
		json="{"+json+"}";
	
		Map<String,String> map = JSON.parseObject(json, Map.class);
		map=JSON.parseObject(JSON.toJSONString(map.get("paramJson")),Map.class);

		type[0] = map.get("RHtype");
		map.remove("RHtype");
		
		
		return map;
		
	}
	
	
	/**
	 * 将 类型转换为 对应的实体bean
	 * @param json
	 * @param c
	 * @return
	 * @throws Exception 
	 */
//	public static <T> T  parseStringToBean(String json,Class<T> c) throws Exception{
//		json =URLDecoder.decode(json,"UTF-8");
//		json=json.replaceAll("=", ":");
//		json="{"+json+"}";
//	
//		Map<String,String> map = JSON.parseObject(json, Map.class);
//		c=JSON.parseObject(JSON.toJSONString(map.get("paramJson")),c.newInstance().getClass());
//		return (T) c;
//		
//	}
}
